{
  "openapi": "3.1.0",
  "info": {
    "title": "Local API",
    "description": "Manage MoreLogin browser profiles from the machine running the MoreLogin desktop client.\n\n**Base URL**: `http://127.0.0.1:40000`\n\nThe Local API can launch a profile **on this machine** (`/api/env/start`) and can also start the same\nprofile as a **cloud runtime** that runs on MoreLogin infrastructure (`/api/cloudbrowser/start`).\nEither way you drive the browser over the Chrome DevTools Protocol (CDP) with Puppeteer, Playwright,\nor Selenium.\n\nTo manage the same profiles from a server without the desktop client, use the\n[Browser Open API](./open-api.yaml).\n\n**ID encoding**: MoreLogin IDs are 64-bit integers on the server, but they are serialized in JSON as\ndecimal strings to avoid precision loss in JavaScript.\n",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "http://127.0.0.1:40000",
      "description": "Local API"
    }
  ],
  "tags": [
    {
      "name": "Profiles",
      "description": "Create, update, query, and delete browser profile configurations."
    },
    {
      "name": "Runtime",
      "description": "Launch and control browser profiles on this machine."
    },
    {
      "name": "Cloud Runtime",
      "description": "Start, stop, query, and connect to browser profiles running in the MoreLogin cloud."
    },
    {
      "name": "Fingerprint & Device Config",
      "description": "Browser kernel versions, user agents, resolutions, languages, time zones, and device models."
    },
    {
      "name": "Cache & Window",
      "description": "Clear profile cache and arrange profile windows."
    }
  ],
  "paths": {
    "/api/env/start": {
      "post": {
        "summary": "Start browser profile",
        "operationId": "startBrowserProfileUsingPOST",
        "deprecated": false,
        "description": "Used to start the profile; you must specify the profile ID. After\nsuccessful startup, you can obtain the profile debug interface for\nexecuting Selenium and Puppeteer automation. For Selenium, use the\nWebDriver matching the corresponding kernel version. The WebDriver path\ncan be retrieved from the response after profile startup. Requires\nMoreLogin client version 2.15.0 or higher.\n",
        "tags": [
          "Runtime"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "envId": {
                    "type": "string",
                    "description": "Environment ID. At least one of `envId` or `uniqueId` must be provided.\nIf both are given, `envId` takes precedence.\n",
                    "example": "1993244721490239488"
                  },
                  "uniqueId": {
                    "type": "integer",
                    "description": "Environment serial number (small integer ID). At least one of `envId` or `uniqueId` must be provided.\nIf both are given, `envId` takes precedence.\n",
                    "example": 1
                  },
                  "encryptKey": {
                    "type": "string",
                    "description": "Encryption key. Required only if end-to-end encryption is enabled for the environment.\n",
                    "example": "xxx"
                  },
                  "isHeadless": {
                    "type": "boolean",
                    "description": "Whether to start in headless mode. Defaults to `false` if omitted.\nNote: Requires client version v2.36.0 or higher.\n",
                    "Default": false,
                    "example": false
                  },
                  "cdpEvasion": {
                    "type": "boolean",
                    "description": "Enable CDP fingerprint evasion to reduce detection risk.\nOnly applies to PC environments.\nDefault:`false`.\nNote: Requires client version v2.36.0 or higher.\n",
                    "Default": false,
                    "example": false
                  },
                  "closeCheckIPPage": {
                    "type": "boolean",
                    "description": "Whether to skip opening the detection page.\ntrue: Proxy detection before execution\nfalse: Proxy detection after execution\nNote: Requires client version v2.56.0 or higher.\n",
                    "Default": false,
                    "example": false
                  },
                  "checkIPErrorHandle": {
                    "type": "integer",
                    "description": "Action to take if proxy detection fails\nNumeric type: 1 or 2\n1: Do not start the environment if proxy detection fails\n2: Start the environment even if proxy detection fails\nIf closeCheckIPPage is passed a parameter, this parameter is omitted; default: 1\nNote: Requires client version v2.56.0 or higher.\n",
                    "Default": 1,
                    "example": 1
                  }
                }
              },
              "example": {
                "envId": "1993244721490239488",
                "isHeadless": false,
                "cdpEvasion": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "envId": {
                          "type": "string",
                          "description": "profile"
                        },
                        "debugPort": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "version": {
                          "type": "integer"
                        },
                        "webdriver": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "envId",
                        "debugPort",
                        "type",
                        "version",
                        "webdriver"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/close": {
      "post": {
        "summary": "Stop browser profile",
        "deprecated": false,
        "description": "Closes the specified environment. Requires specifying the environment ID. Requires MoreLogin application v2.15.0 or higher.",
        "tags": [
          "Runtime"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "envId": {
                    "description": "Environment ID or serial number — at least one must be provided; if both, envId takes precedence.",
                    "type": "string"
                  },
                  "uniqueId": {
                    "description": "Environment serial number — at least one of 'envId' or 'uniqueId' must be provided; if both, 'envId' takes precedence.",
                    "type": "integer"
                  }
                }
              },
              "example": {
                "envId": "1869649942658850816",
                "uniqueId": 0
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "envId": {
                          "type": "string"
                        },
                        "debugPort": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "envId",
                        "debugPort"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "msg",
                    "data"
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/create/quick": {
      "post": {
        "summary": "Quick create browser profile",
        "deprecated": false,
        "description": "",
        "tags": [
          "Profiles"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "browserTypeId": {
                    "description": "1:Chrome, 2:Firefox",
                    "type": "integer",
                    "example": 1
                  },
                  "groupId": {
                    "description": "Environment group ID; default:ungrouped (0)",
                    "type": "integer",
                    "example": 0
                  },
                  "groupName": {
                    "description": "Group name (max 50 characters). If provided, the system first checks groupId: if a valid group is found, it is used; otherwise, it searches by groupName. If a group with that name exists, it is referenced; if not, a new group is created. Each team is limited to 1,000 groups.",
                    "type": "string",
                    "maxLength": 50,
                    "example": ""
                  },
                  "isEncrypt": {
                    "description": "Enable end-to-end encryption? 0:No, 1:Yes; default:0",
                    "type": "integer"
                  },
                  "operatorSystemId": {
                    "description": "OS type 1:Windows, 2:macOS, 3:Android, 4:iOS",
                    "type": "integer",
                    "example": 1
                  },
                  "quantity": {
                    "description": "Number of environments to create; range:[1–50]",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 50,
                    "example": 1
                  },
                  "browserCore": {
                    "description": "Browser kernel version; default:0 (auto-match). Obtain available versions via '/api/env/advanced/ua/versions'",
                    "type": "integer",
                    "example": 140
                  },
                  "proxy": {
                    "type": "object",
                    "properties": {
                      "proxyId": {
                        "description": "Proxy ID",
                        "type": "integer"
                      },
                      "proxyName": {
                        "description": "Proxy name (maximum 600 characters)",
                        "type": "string"
                      },
                      "proxyType": {
                        "description": "Proxy type, 0: http, 1: https. Cannot be empty when proxyProvider is 7/8",
                        "type": "integer"
                      },
                      "proxyProvider": {
                        "description": "Proxy provider 0: http, 1: https, 2: socks5, 3: ssh, 4: Oxylabs, 5: Proxys.io, 7: Luminati, 8: Lumauto, 9: Oxylabsauto, 10: Trojan, 11: Shadowsocks, 13: ABCPROXY, 14: LunaProxy, 15: IPHTML, 16: PiaProxy, 17: 922S5, 18: 360Proxy",
                        "type": "string"
                      },
                      "proxyIp": {
                        "description": "Proxy IP. Can be empty when proxyProvider is 16/17/18; required for others",
                        "type": "string"
                      },
                      "proxyPort": {
                        "description": "Proxy port (only numbers 1-65535 allowed). Can be empty when proxyProvider is 16/17/18; required for others",
                        "type": "integer"
                      },
                      "username": {
                        "description": "Username (maximum 200 characters)",
                        "type": "string"
                      },
                      "password": {
                        "description": "Password (maximum 100 characters)",
                        "type": "string"
                      },
                      "refreshUrl": {
                        "description": "Refresh URL",
                        "type": "string"
                      },
                      "country": {
                        "description": "Country code (e.g. `us`). See [Country Time Zone Table](/api-reference/appendix/country-time-zone) for supported codes. Required when proxyProvider is 16/17/18",
                        "type": "string"
                      },
                      "city": {
                        "description": "City",
                        "type": "string"
                      },
                      "state": {
                        "description": "State/Province",
                        "type": "string"
                      },
                      "encryptionType": {
                        "description": "Encryption method. Cannot be empty when proxyProvider is 11. 1: aes-128-gcm, 2: aes-192-gcm, 3: aes-256-gcm, 4: aes-128-cfb, 5: aes-192-cfb, 6: aes-256-cfb, 7: aes-128-ctr, 8: aes-192-ctr, 9: aes-256-ctr, 10: rc4-md5, 11: chacha20-ietf, 12: xchacha20, 13: chacha20-ietf-poly1305, 14: xchacha20-ietf-poly1305",
                        "type": "integer"
                      },
                      "ipMonitor": {
                        "description": "Enable IP change monitoring? true: On, false: Off",
                        "type": "boolean"
                      },
                      "ipChangeAction": {
                        "description": "IP change monitoring 0: Block access, 1: Warn",
                        "type": "integer"
                      }
                    },
                    "description": "Proxy information"
                  }
                },
                "required": [
                  "browserTypeId",
                  "operatorSystemId",
                  "quantity"
                ]
              },
              "example": {
                "browserTypeId": 1,
                "operatorSystemId": 1,
                "quantity": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "requestId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "code",
                    "msg",
                    "data",
                    "requestId"
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/create/advanced": {
      "post": {
        "summary": "Advanced create browser profile",
        "deprecated": false,
        "description": "",
        "tags": [
          "Profiles"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEnvironmentRequest"
              },
              "example": {
                "accountInfo": {
                  "platformId": 9999,
                  "customerUrl": "",
                  "username": "",
                  "password": "",
                  "otpSecret": "",
                  "siteId": 0
                },
                "advancedSetting": {
                  "ua_version": 140,
                  "os": 2,
                  "time_zone": {
                    "switcher": 2,
                    "value": "1703673608443793408"
                  },
                  "web_rtc": {
                    "switcher": 4
                  },
                  "geo_location": {
                    "switcher": 2,
                    "base_on_ip": true,
                    "longitude": 0,
                    "latitude": 0,
                    "accuracy": 17000
                  },
                  "resolution": {
                    "switcher": 2,
                    "id": "1703673947297419264"
                  },
                  "font": {
                    "switcher": 1,
                    "value": ""
                  },
                  "canvas": {
                    "switcher": 2
                  },
                  "webgl_image": {
                    "switcher": 1
                  },
                  "webgl_metadata": {
                    "switcher": 1
                  },
                  "web_gpu": {
                    "switcher": 3
                  },
                  "speech_voise": {
                    "switcher": 1
                  },
                  "audio_context": {
                    "switcher": 1
                  },
                  "media_device": {
                    "switcher": 2
                  },
                  "client_rects": {
                    "switcher": 2
                  },
                  "hardware_concurrency": 6,
                  "memery_device": 4,
                  "port_scan_protection": {
                    "switcher": 1,
                    "value": ""
                  },
                  "battery": {
                    "switcher": 2
                  },
                  "bluetooth": {
                    "switcher": 1
                  },
                  "do_not_track": 2,
                  "language": {
                    "switcher": 1,
                    "value": "1703673595865075712,1703673597404385280"
                  },
                  "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.61 Safari/537.36"
                },
                "cookies": "",
                "afterStartupConfig": {
                  "afterStartup": 3,
                  "autoOpenUrls": [
                    "https://www.x.com"
                  ],
                  "platformUrl": "https://www.facebook.com/"
                },
                "browserCore": 0,
                "browserTypeId": 1,
                "envName": "",
                "envRemark": "",
                "groupId": 0,
                "groupName": "",
                "isEncrypt": 0,
                "operatorSystemId": 2,
                "proxyId": 0,
                "tagIds": [],
                "uaVersion": 0,
                "disableAudio": 0,
                "disableVideo": 0,
                "disableImg": 0,
                "imgLimitSize": 10
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "string"
                    },
                    "requestId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "code",
                    "msg",
                    "data",
                    "requestId"
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/update": {
      "post": {
        "summary": "Modify browser profile",
        "deprecated": false,
        "description": "",
        "tags": [
          "Profiles"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateEnvironmentRequest"
              },
              "example": {
                "accountInfo": {
                  "platformId": 9999,
                  "customerUrl": "",
                  "username": "",
                  "password": "",
                  "otpSecret": "",
                  "siteId": 0
                },
                "advancedSetting": {
                  "ua_version": 140,
                  "os": 2,
                  "time_zone": {
                    "switcher": 2,
                    "value": "1703673608443793408"
                  },
                  "web_rtc": {
                    "switcher": 4
                  },
                  "geo_location": {
                    "switcher": 2,
                    "base_on_ip": true,
                    "longitude": 0,
                    "latitude": 0,
                    "accuracy": 17000
                  },
                  "resolution": {
                    "switcher": 2,
                    "id": "1703673947297419264"
                  },
                  "font": {
                    "switcher": 1,
                    "value": ""
                  },
                  "canvas": {
                    "switcher": 2
                  },
                  "webgl_image": {
                    "switcher": 1
                  },
                  "webgl_metadata": {
                    "switcher": 1
                  },
                  "web_gpu": {
                    "switcher": 3
                  },
                  "speech_voise": {
                    "switcher": 1
                  },
                  "audio_context": {
                    "switcher": 1
                  },
                  "media_device": {
                    "switcher": 2
                  },
                  "client_rects": {
                    "switcher": 2
                  },
                  "hardware_concurrency": 6,
                  "memery_device": 4,
                  "port_scan_protection": {
                    "switcher": 1,
                    "value": ""
                  },
                  "battery": {
                    "switcher": 2
                  },
                  "bluetooth": {
                    "switcher": 1
                  },
                  "do_not_track": 2,
                  "language": {
                    "switcher": 1,
                    "value": "1703673595865075712,1703673597404385280"
                  },
                  "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.61 Safari/537.36"
                },
                "cookies": "",
                "afterStartupConfig": {
                  "afterStartup": 3,
                  "autoOpenUrls": [
                    "https://www.x.com"
                  ],
                  "platformUrl": "https://www.facebook.com/"
                },
                "browserCore": 0,
                "browserTypeId": 1,
                "envName": "",
                "envRemark": "",
                "groupId": 0,
                "groupName": "",
                "isEncrypt": 0,
                "operatorSystemId": 2,
                "proxyId": 0,
                "tagIds": [],
                "uaVersion": 0,
                "disableAudio": 0,
                "disableVideo": 0,
                "disableImg": 0,
                "imgLimitSize": 10
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "null"
                    },
                    "requestId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "code",
                    "msg",
                    "data",
                    "requestId"
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/removeToRecycleBin/batch": {
      "post": {
        "summary": "Delete browser profile",
        "operationId": "batchDeleteBrowserProfilesUsingPOST",
        "deprecated": false,
        "description": "",
        "tags": [
          "Profiles"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "envIds"
                ],
                "properties": {
                  "envIds": {
                    "type": "array",
                    "description": "List of environment (browser profile) IDs to delete.",
                    "items": {
                      "type": "string",
                      "example": "1868548141708648448"
                    },
                    "minItems": 1,
                    "example": [
                      "1868548141708648448",
                      "1868548141708648449"
                    ]
                  },
                  "removeEnvData": {
                    "type": "boolean",
                    "description": "Also delete local configuration files?\nSupported in v2.28.0+.\n",
                    "Default": false,
                    "example": false
                  }
                }
              },
              "example": {
                "envIds": [
                  "1868548141708648448"
                ],
                "removeEnvData": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "boolean"
                    },
                    "requestId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "code",
                    "msg",
                    "data",
                    "requestId"
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/page": {
      "post": {
        "summary": "Get a list of browser profiles",
        "operationId": "listBrowserProfilesUsingPOST",
        "deprecated": false,
        "description": "",
        "tags": [
          "Profiles"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "envName": {
                    "type": "string",
                    "description": "Filter by environment (profile) name. Empty string returns all.",
                    "example": ""
                  },
                  "groupId": {
                    "type": "integer",
                    "description": "Filter by group ID. Use 0 for ungrouped profiles.",
                    "Default": 0,
                    "example": 0
                  },
                  "envId": {
                    "type": "string",
                    "description": "Filter by specific environment ID.\nIf provided, other filters may be ignored.\n",
                    "example": "1869988538611834880"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page number (1-based index).",
                    "Default": 1,
                    "minimum": 1,
                    "example": 1
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Number of items per page.",
                    "Default": 10,
                    "minimum": 1,
                    "maximum": 100,
                    "example": 10
                  }
                }
              },
              "example": {
                "pageNo": 1,
                "pageSize": 10
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "string"
                        },
                        "current": {
                          "type": "string"
                        },
                        "pages": {
                          "type": "string"
                        },
                        "dataList": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Browser profile ID"
                              },
                              "envName": {
                                "type": "string",
                                "description": "Profile name"
                              },
                              "groupId": {
                                "type": "string",
                                "description": "Group ID"
                              },
                              "groupName": {
                                "type": "string",
                                "nullable": true,
                                "description": "Group name. `null` when the profile is ungrouped"
                              },
                              "tagInfos": {
                                "type": "array",
                                "description": "Tag details. Empty array when no tags are assigned",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "description": "Tag ID"
                                    },
                                    "tagName": {
                                      "type": "string",
                                      "description": "Tag name"
                                    }
                                  },
                                  "required": [
                                    "id",
                                    "tagName"
                                  ]
                                }
                              },
                              "envRemark": {
                                "type": "string",
                                "nullable": true,
                                "description": "Profile remark"
                              },
                              "proxyId": {
                                "type": "string",
                                "description": "Proxy ID. `0` means no proxy"
                              },
                              "proxy": {
                                "type": "object",
                                "nullable": true,
                                "description": "Proxy configuration. `null` when no proxy is assigned",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "description": "Proxy ID"
                                  },
                                  "proxyName": {
                                    "type": "string",
                                    "description": "Proxy name"
                                  },
                                  "proxyType": {
                                    "type": "integer",
                                    "description": "Proxy type"
                                  },
                                  "proxyProvider": {
                                    "type": "integer",
                                    "description": "Proxy provider"
                                  },
                                  "proxyCategoryType": {
                                    "type": "integer",
                                    "description": "Proxy category type"
                                  },
                                  "proxyCheckStatus": {
                                    "type": "integer",
                                    "description": "Proxy check status"
                                  },
                                  "proxyStatus": {
                                    "type": "integer",
                                    "description": "Proxy status"
                                  },
                                  "proxyIp": {
                                    "type": "string",
                                    "description": "Proxy IP address"
                                  },
                                  "exportIp": {
                                    "type": "string",
                                    "description": "Export IP address"
                                  },
                                  "countryCode": {
                                    "type": "string",
                                    "description": "Country code"
                                  },
                                  "expiryTime": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Expiry timestamp"
                                  },
                                  "username": {
                                    "type": "string",
                                    "description": "Proxy username"
                                  },
                                  "password": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Proxy password"
                                  },
                                  "refreshUrl": {
                                    "type": "string",
                                    "nullable": true,
                                    "description": "Proxy refresh URL"
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "total",
                        "current",
                        "pages",
                        "dataList"
                      ]
                    },
                    "requestId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "code",
                    "msg",
                    "data",
                    "requestId"
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/detail": {
      "post": {
        "summary": "Get browser profile details",
        "operationId": "getBrowserProfileDetailsUsingPOST",
        "deprecated": false,
        "description": "",
        "tags": [
          "Profiles"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "envId"
                ],
                "properties": {
                  "envId": {
                    "type": "string",
                    "description": "Target environment (browser profile) ID",
                    "example": "1869988538611834880"
                  }
                }
              },
              "example": {
                "envId": "1869988538611834880"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "envName": {
                          "type": "string"
                        },
                        "browserTypeId": {
                          "type": "integer"
                        },
                        "operatorSystemId": {
                          "type": "integer"
                        },
                        "groupId": {
                          "type": "string"
                        },
                        "groupName": {
                          "type": "string",
                          "nullable": true,
                          "description": "Group name. `null` when the profile is ungrouped"
                        },
                        "tagInfos": {
                          "type": "array",
                          "description": "Tag details. Empty array when no tags are assigned",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Tag ID"
                              },
                              "tagName": {
                                "type": "string",
                                "description": "Tag name"
                              }
                            },
                            "required": [
                              "id",
                              "tagName"
                            ]
                          }
                        },
                        "proxyId": {
                          "type": "string"
                        },
                        "isEncrypt": {
                          "type": "integer"
                        },
                        "envRemark": {
                          "type": "string"
                        },
                        "uaVersion": {
                          "type": "integer"
                        },
                        "browserCore": {
                          "type": "integer"
                        },
                        "accountInfo": {
                          "type": "object",
                          "properties": {
                            "username": {
                              "type": "string"
                            },
                            "password": {
                              "type": "string"
                            },
                            "siteId": {
                              "type": "string"
                            },
                            "platformId": {
                              "type": "string"
                            },
                            "customerUrl": {
                              "type": "string"
                            },
                            "otpSecret": {
                              "type": "null"
                            }
                          },
                          "required": [
                            "username",
                            "password",
                            "siteId",
                            "platformId",
                            "customerUrl",
                            "otpSecret"
                          ]
                        },
                        "isShowAccount": {
                          "type": "integer"
                        },
                        "afterStartupConfig": {
                          "type": "object",
                          "properties": {
                            "afterStartup": {
                              "type": "integer"
                            },
                            "autoOpenUrls": {
                              "type": "array",
                              "items": {}
                            },
                            "platformUrl": {
                              "type": "null"
                            }
                          },
                          "required": [
                            "afterStartup",
                            "autoOpenUrls",
                            "platformUrl"
                          ]
                        },
                        "startupParams": {
                          "type": "null"
                        },
                        "cookies": {
                          "type": "null"
                        },
                        "advancedSetting": {
                          "type": "object",
                          "properties": {}
                        }
                      }
                    },
                    "requestId": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/advanced/ua/versions": {
      "get": {
        "summary": "Get a list of browser kernel versions",
        "deprecated": false,
        "description": "",
        "tags": [
          "Fingerprint & Device Config"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "browserType": {
                            "type": "integer"
                          },
                          "versions": {
                            "type": "array",
                            "items": {
                              "type": "integer"
                            }
                          }
                        }
                      }
                    },
                    "requestId": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/advanced/ua/get": {
      "post": {
        "summary": "Get browser profile UA",
        "operationId": "getBrowserProfileUAUsingPOST",
        "deprecated": false,
        "description": "",
        "tags": [
          "Fingerprint & Device Config"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "os"
                ],
                "properties": {
                  "os": {
                    "type": "integer",
                    "description": "Operating system type.\n1 = Windows, 2 = macOS, 3 = Android, 4 = iOS\n",
                    "enum": [
                      1,
                      2,
                      3,
                      4
                    ],
                    "example": 1
                  },
                  "osVersion": {
                    "type": "string",
                    "description": "OS version (e.g., \"Windows 11\", \"macOS 14\").\n",
                    "example": "Windows 11"
                  },
                  "vendor": {
                    "type": "integer",
                    "description": "Browser type.\n1 = Chrome, 2 = Firefox\n",
                    "enum": [
                      1,
                      2
                    ],
                    "example": 1
                  }
                }
              },
              "example": {
                "os": 1,
                "osVersion": "Windows 11",
                "vendor": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "string"
                    },
                    "data": {
                      "type": "null"
                    },
                    "resolution": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "value"
                      ]
                    },
                    "ua": {
                      "type": "string"
                    },
                    "requestId": {
                      "type": "string"
                    },
                    "error": {
                      "type": "object",
                      "properties": {}
                    }
                  },
                  "required": [
                    "resolution",
                    "ua"
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/base/resolution/list": {
      "post": {
        "summary": "Get resolution",
        "operationId": "listResolutionsUsingPOST",
        "deprecated": false,
        "description": "",
        "tags": [
          "Fingerprint & Device Config"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "os": {
                    "type": "integer",
                    "description": "OS type (1=Windows, 2=macOS, 3=Android, 4=iOS)",
                    "example": 1
                  },
                  "ua": {
                    "type": "string",
                    "description": "User-Agent string (optional)",
                    "example": ""
                  }
                },
                "required": [
                  "os"
                ]
              },
              "example": {
                "os": 1,
                "ua": ""
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "value": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "requestId": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/system/platform/list": {
      "get": {
        "summary": "Get configurable platforms",
        "deprecated": false,
        "description": "",
        "tags": [
          "Fingerprint & Device Config"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "Platform ID"
                          },
                          "categoryId": {
                            "type": "string",
                            "description": "Category ID"
                          },
                          "groupName": {
                            "type": "string",
                            "description": "Group name"
                          },
                          "groups": {
                            "type": "string",
                            "description": "Group，0：Amazon"
                          },
                          "isCustomer": {
                            "type": "boolean",
                            "description": "Whether to customize the platform"
                          },
                          "logo": {
                            "type": "string",
                            "description": "Platform logo"
                          },
                          "name": {
                            "type": "string",
                            "description": "Platform name"
                          },
                          "orderNo": {
                            "type": "string",
                            "description": "Sort Number"
                          },
                          "sites": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "Site ID"
                                },
                                "host": {
                                  "type": "string",
                                  "description": "Site Domain Name"
                                },
                                "name": {
                                  "type": "string",
                                  "description": "Size name"
                                },
                                "nameBak": {
                                  "type": "string",
                                  "description": "Size name backup"
                                },
                                "logo": {
                                  "type": "string",
                                  "description": "Logo"
                                },
                                "url": {
                                  "type": "string",
                                  "description": "Size URL"
                                },
                                "isDefault": {
                                  "type": "boolean"
                                },
                                "country": {
                                  "type": "string",
                                  "description": "Country"
                                }
                              },
                              "required": [
                                "id",
                                "host",
                                "name",
                                "logo",
                                "nameBak",
                                "url",
                                "isDefault",
                                "country"
                              ]
                            },
                            "description": "Sites information"
                          }
                        },
                        "required": [
                          "id",
                          "categoryId",
                          "groupName",
                          "groups",
                          "isCustomer",
                          "logo",
                          "name",
                          "orderNo",
                          "sites"
                        ]
                      }
                    },
                    "requestId": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/lock/query": {
      "post": {
        "summary": "Get browser security lock status",
        "operationId": "queryBrowserLockStatusUsingPOST",
        "deprecated": false,
        "description": "",
        "tags": [
          "Profiles"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "envId"
                ],
                "properties": {
                  "envId": {
                    "type": "string",
                    "description": "Unique environment (browser profile) ID",
                    "example": "1869988538611834880"
                  }
                }
              },
              "example": {
                "envId": "1869988538611834880"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "envId": {
                          "type": "string"
                        },
                        "locked": {
                          "type": "boolean"
                        }
                      }
                    },
                    "requestId": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/base/list": {
      "post": {
        "summary": "Get a list of timezone and language",
        "operationId": "listTimezoneAndLanguageUsingPOST",
        "deprecated": false,
        "description": "",
        "tags": [
          "Fingerprint & Device Config"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "os"
                ],
                "properties": {
                  "os": {
                    "type": "integer",
                    "description": "Operating system type.\n1 = Windows, 2 = macOS, 3 = Android, 4 = iOS\n",
                    "enum": [
                      1,
                      2,
                      3,
                      4
                    ],
                    "example": 1
                  }
                }
              },
              "example": {
                "os": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "time_zone_list": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "value": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "language_list": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "value": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    },
                    "requestId": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/removeLocalCache": {
      "post": {
        "summary": "Clear local profile cache",
        "operationId": "clearLocalProfileCacheUsingPOST",
        "deprecated": false,
        "description": "",
        "tags": [
          "Cache & Window"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "envId"
                ],
                "properties": {
                  "envId": {
                    "type": "string",
                    "description": "Environment ID. Exactly one of `envId` or `uniqueId` must be provided.\n"
                  },
                  "localStorage": {
                    "type": "boolean",
                    "description": "Clear LocalStorage Default:false",
                    "Default": false
                  },
                  "indexedDB": {
                    "type": "boolean",
                    "description": "Clear IndexedDB Default:false",
                    "Default": false
                  },
                  "cookie": {
                    "type": "boolean",
                    "description": "Clear cookies Default:false",
                    "Default": false
                  },
                  "extension": {
                    "type": "boolean",
                    "description": "Clear extension data. If `extensionFile` is not provided,\nclears both extension name and data. Default:false\n",
                    "Default": false
                  },
                  "extensionFile": {
                    "type": "boolean",
                    "description": "Clear extension files (effective from v3.36).\n",
                    "Default": false
                  }
                }
              },
              "example": {
                "envId": "1924340272932134912",
                "localStorage": false,
                "indexedDB": false,
                "cookie": false,
                "extension": false,
                "extensionFile": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "envId": {
                          "type": "string"
                        },
                        "requestId": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/cache/cleanCloud": {
      "post": {
        "summary": "Clean Environment Cloud Cache",
        "deprecated": false,
        "description": "Cleans environment cloud cookies and other data (LocalStorage, IndexedDB, extensions and their data)",
        "tags": [
          "Cache & Window"
        ],
        "parameters": [
          {
            "name": "Accept-Language",
            "in": "header",
            "description": "Default request language",
            "required": false,
            "example": "zh-CN",
            "schema": {
              "type": "string",
              "default": "zh-CN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "cookie": {
                    "description": "Whether to clear cookies",
                    "type": "boolean"
                  },
                  "envId": {
                    "description": "Environment ID, must fill one with serial ID",
                    "type": "integer"
                  },
                  "others": {
                    "description": "Whether to clear other cache",
                    "type": "boolean"
                  },
                  "uniqueId": {
                    "description": "Serial ID, must fill one with environment ID",
                    "type": "integer"
                  }
                }
              },
              "example": "{\r\n\t\"cookie\": true, //Whether to clear cookies\r\n\t\"envId\": 0, //Environment ID, must fill one with serial ID\r\n\t\"others\": true, //Whether to clear other cache\r\n\t\"uniqueId\": 0 //Serial ID, must fill one with environment ID\r\n}"
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "null"
                    },
                    "requestId": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "code": 0,
                  "msg": null,
                  "data": null,
                  "requestId": "ca3b32431c264b6c94187fde14d23229"
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/fingerprint/refresh": {
      "post": {
        "summary": "Refresh fingerprint",
        "operationId": "refreshFingerprintUsingPOST",
        "deprecated": false,
        "description": "",
        "tags": [
          "Fingerprint & Device Config"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "envId"
                ],
                "properties": {
                  "envId": {
                    "type": "string",
                    "description": "Profile ID (environment ID). Exactly one of `envId` or `uniqueId` must be provided.\n"
                  },
                  "uniqueId": {
                    "type": "string",
                    "description": "Profile serial number (unique ID). Exactly one of `envId` or `uniqueId` must be provided.\n"
                  },
                  "uaVersion": {
                    "type": "integer",
                    "description": "Target User-Agent version (e.g., Chrome 129). \nIf omitted, uses the current UA version from the profile.\n",
                    "example": 129
                  },
                  "browserTypeId": {
                    "type": "integer",
                    "description": "Browser type. 1 = Chrome, 2 = Firefox.\n",
                    "enum": [
                      1,
                      2
                    ]
                  },
                  "operatorSystemId": {
                    "type": "integer",
                    "description": "Operating system type. 1 = Windows, 2 = macOS, 3 = Android, 4 = iOS.\n",
                    "enum": [
                      1,
                      2,
                      3,
                      4
                    ]
                  },
                  "advancedSetting": {
                    "$ref": "#/components/schemas/AdvancedSetting"
                  }
                }
              },
              "example": {
                "envId": "1869988538611834880",
                "uniqueId": "",
                "uaVersion": 129,
                "browserTypeId": 1,
                "operatorSystemId": 2,
                "advancedSetting": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "null"
                    },
                    "requestId": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/status": {
      "post": {
        "summary": "Get the browser profile running status",
        "deprecated": false,
        "description": "",
        "tags": [
          "Runtime"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "envId": {
                    "description": "Browser environment ID",
                    "type": "string"
                  }
                },
                "required": [
                  "envId"
                ]
              },
              "example": {
                "envId": "1957985601221750784"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "msg": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "envId": {
                          "type": "string",
                          "description": "env Id"
                        },
                        "status": {
                          "type": "string"
                        },
                        "localStatus": {
                          "type": "string"
                        },
                        "debugPort": {
                          "type": "string"
                        },
                        "webdriver": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "envId",
                        "debugPort",
                        "status",
                        "localStatus",
                        "webdriver"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "msg",
                    "data"
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/getAllScreen": {
      "post": {
        "summary": "Get screen list",
        "deprecated": false,
        "description": "Used to retrieve information of all monitors. No request parameters required.",
        "tags": [
          "Cache & Window"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              },
              "example": "{}//Used to retrieve information of all monitors. No request parameters required."
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "Unique identifier of the screen"
                          },
                          "scaleFactor": {
                            "type": "integer",
                            "description": "Screen scaling factor"
                          },
                          "width": {
                            "type": "integer",
                            "description": "Screen pixel width"
                          },
                          "height": {
                            "type": "integer",
                            "description": "Screen pixel height"
                          },
                          "internal": {
                            "type": "boolean",
                            "description": "Indicates whether the screen is built-in"
                          },
                          "x": {
                            "type": "integer",
                            "description": "Screen position on the X-axis in the virtual coordinate system"
                          },
                          "y": {
                            "type": "integer",
                            "description": "Screen position on the Y-axis in the virtual coordinate system"
                          },
                          "current": {
                            "type": "boolean",
                            "description": "Identifier of the currently active screen"
                          },
                          "realWidth": {
                            "type": "integer",
                            "description": "Actual physical width of the screen"
                          },
                          "realHeight": {
                            "type": "integer",
                            "description": "Actual physical height of the screen"
                          },
                          "workAreaWidth": {
                            "type": "integer",
                            "description": "Pixel width of the screen's work area"
                          },
                          "workAreaHeight": {
                            "type": "integer",
                            "description": "Pixel height of the screen's work area"
                          },
                          "workAreaRealWidth": {
                            "type": "integer",
                            "description": "Actual physical width of the work area"
                          },
                          "workAreaRealHeight": {
                            "type": "integer",
                            "description": "Actual physical height of the work area"
                          },
                          "rectWorkAreaWidth": {
                            "type": "integer",
                            "description": "Corrected width of the work area"
                          },
                          "rectWorkAreaHeight": {
                            "type": "integer",
                            "description": "Corrected height of the work area"
                          },
                          "rectWorkAreaRealWidth": {
                            "type": "integer",
                            "description": "Actual physical width of the corrected work area"
                          },
                          "rectWorkAreaRealHeight": {
                            "type": "integer",
                            "description": "Actual physical height of the corrected work area"
                          },
                          "rectWorkAreaX": {
                            "type": "integer",
                            "description": "X-axis position of the corrected work area"
                          },
                          "rectWorkAreaY": {
                            "type": "integer",
                            "description": "Y-axis position of the corrected work area"
                          },
                          "depthPerComponent": {
                            "type": "integer",
                            "description": "Color precision per pixel on the screen"
                          },
                          "isPrimaryScreen": {
                            "type": "boolean",
                            "description": "Whether the screen is the primary display"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "code": 0,
                  "msg": null,
                  "data": [
                    {
                      "width": 1920,
                      "height": 1080,
                      "internal": false,
                      "x": 0,
                      "y": 0,
                      "current": true,
                      "scaleFactor": 1,
                      "id": 2528732444,
                      "realWidth": 1920,
                      "realHeight": 1080,
                      "workAreaWidth": 1920,
                      "workAreaHeight": 1032,
                      "rectWorkAreaWidth": 1920,
                      "rectWorkAreaHeight": 1032,
                      "rectWorkAreaRealWidth": 1920,
                      "rectWorkAreaRealHeight": 1032,
                      "rectWorkAreaX": 0,
                      "rectWorkAreaY": 0,
                      "depthPerComponent": 8,
                      "workAreaRealWidth": 1920,
                      "workAreaRealHeight": 1032,
                      "isPrimaryScreen": true
                    }
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/arrangeWindows": {
      "post": {
        "summary": "One-click adaptive window arrangement",
        "deprecated": false,
        "description": "Used to arrange opened profiles with one click. Requires at least one profile to be open.",
        "tags": [
          "Cache & Window"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "arrangeType": {
                    "description": "Arrangement type: 1 for Tiled, 2 for Stacked, defaults to Tiled if not specified",
                    "type": "integer"
                  },
                  "envIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Environment IDs, if not specified, all environment windows are selected by default"
                  },
                  "screenIds": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "Screen IDs, array type, if not specified, arrange on the screen where the mouse cursor is located"
                  }
                }
              },
              "example": "{\r\n    \"arrangeType\": 2, // Arrangement type: 1 for Tiled, 2 for Stacked, integer(int32) type, optional, defaults to Tiled if not specified\r\n    \"envIds\": [\"2014664375044337664\"], // Environment IDs, if not specified, all environment windows are selected by default\r\n    \"screenIds\": [2528732444,2779098405]  // Screen IDs, array type, if not specified, arrange on the screen where the mouse cursor is located\r\n}"
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "arrangeType": {
                      "type": "integer"
                    },
                    "envIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Environment ID"
                    },
                    "screenIds": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      },
                      "description": "Sequence ID"
                    }
                  }
                },
                "example": {
                  "arrangeType": 2,
                  "envIds": [
                    "2014664375044337664"
                  ],
                  "screenIds": [
                    2528732444
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/setGroup/batch": {
      "post": {
        "summary": "Batch modify profiles group",
        "deprecated": false,
        "description": "Used to batch modify the group information of profiles. Creates a new group if the group name does not exist.",
        "tags": [
          "Profiles"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "envIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "Environment IDs, array type, must choose one between this and serial IDs"
                    }
                  },
                  "groupName": {
                    "description": "Group name, string type, required",
                    "type": "string"
                  },
                  "uniqueIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Serial IDs, array type, must choose one between this and environment IDs"
                  }
                },
                "required": [
                  "groupName"
                ]
              },
              "example": "{\r\n\t\"envIds\": [\r\n\t\t\"2016036223642570752\",\r\n\t\t\"2016028408622419968\"\r\n\t], //Environment IDs, array type, must choose one between this and serial IDs\r\n\t\"groupName\": \"3\", //Group name, string type, required\r\n\t\"uniqueIds\": [] //Serial IDs, array type, must choose one between this and environment IDs\r\n}"
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "boolean"
                    },
                    "requestId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "requestId"
                  ]
                },
                "example": {
                  "code": 0,
                  "msg": null,
                  "data": true,
                  "requestId": "a416bb98f6d240c3bb79e7b2cf6e7ad4"
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/setProxy/batch": {
      "post": {
        "summary": "Batch modify profiles proxy",
        "deprecated": false,
        "description": "",
        "tags": [
          "Profiles"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "envIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Choose one with serial IDs, must fill one"
                  },
                  "proxy": {
                    "type": "object",
                    "properties": {
                      "city": {
                        "type": "string",
                        "description": "City"
                      },
                      "state": {
                        "type": "string",
                        "description": "State/Province"
                      },
                      "country": {
                        "type": "string",
                        "description": "Country code (e.g. `us`). See [Country Time Zone Table](/api-reference/appendix/country-time-zone) for supported codes. Required when proxyProvider is 16/17/18"
                      },
                      "encryptionType": {
                        "type": "integer",
                        "description": "Encryption method. Cannot be empty when proxyProvider is 11. 1: aes-128-gcm, 2: aes-192-gcm, 3: aes-256-gcm, 4: aes-128-cfb, 5: aes-192-cfb, 6: aes-256-cfb, 7: aes-128-ctr, 8: aes-192-ctr, 9: aes-256-ctr, 10: rc4-md5, 11: chacha20-ietf, 12: xchacha20, 13: chacha20-ietf-poly1305, 14: xchacha20-ietf-poly1305"
                      },
                      "proxyId": {
                        "type": "integer",
                        "description": "Proxy ID"
                      },
                      "proxyIp": {
                        "description": "Proxy IP. Can be empty when proxyProvider is 16/17/18; required for others",
                        "type": "string"
                      },
                      "proxyPort": {
                        "type": "integer",
                        "description": "Proxy port (only numbers 1-65535 allowed). Can be empty when proxyProvider is 16/17/18; required for others"
                      },
                      "proxyType": {
                        "type": "integer",
                        "description": "Proxy type, 0: http, 1: https. Cannot be empty when proxyProvider is 7/8"
                      },
                      "proxyProvider": {
                        "type": "string",
                        "description": "Proxy provider 0: http, 1: https, 2: socks5, 3: ssh, 4: Oxylabs, 5: Proxys.io, 7: Luminati, 8: Lumauto, 9: Oxylabsauto, 10: Trojan, 11: Shadowsocks, 13: ABCPROXY, 14: LunaProxy, 15: IPHTML, 16: PiaProxy, 17: 922S5, 18: 360Proxy"
                      },
                      "proxyName": {
                        "type": "string",
                        "description": "Proxy name (maximum 600 characters)"
                      },
                      "password": {
                        "type": "string",
                        "description": "Password (maximum 100 characters)"
                      },
                      "refreshUrl": {
                        "type": "string",
                        "description": "Refresh URL"
                      },
                      "ipMonitor": {
                        "type": "boolean",
                        "description": "Enable IP change monitoring? true: On, false: Off"
                      },
                      "ipChangeAction": {
                        "type": "integer",
                        "description": "IP change monitoring 0: Block access, 1: Warn"
                      },
                      "username": {
                        "type": "string",
                        "description": "Username (maximum 200 characters)"
                      }
                    },
                    "required": [
                      "city",
                      "country",
                      "encryptionType",
                      "ipChangeAction",
                      "ipMonitor",
                      "password",
                      "proxyId",
                      "proxyIp",
                      "proxyName",
                      "proxyPort",
                      "proxyProvider",
                      "proxyType",
                      "refreshUrl",
                      "state",
                      "username"
                    ],
                    "description": "Used to change the bound proxy for environments. If proxyId is provided, bind to the proxy represented by that ID; otherwise, bind to a newly added proxy. If proxy information remains unchanged, no rebinding occurs (any change in proxyIp, proxyPort, proxyType, or proxyProvider is considered a new proxy, and rebinding succeeds)"
                  },
                  "uniqueIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Choose one with environment ID, must fill one"
                  }
                },
                "required": [
                  "proxy"
                ]
              },
              "example": "{\r\n\t\"envIds\": [\"2016036223642570752\",\"2016028408622419968\"], //Choose one with serial IDs, must fill one\r\n\t\"proxy\": { //Used to change the bound proxy for environments. If proxyId is provided, bind to the proxy represented by that ID; otherwise, bind to a newly added proxy. If proxy information remains unchanged, no rebinding occurs (any change in proxyIp, proxyPort, proxyType, or proxyProvider is considered a new proxy, and rebinding succeeds)\r\n\t\t\"city\": \"fuzhou\", \r\n\t\t\"country\": \"China\",\r\n\t\t\"encryptionType\": 1,\r\n\t\t\"ipChangeAction\": 0,\r\n\t\t\"ipMonitor\": false,\r\n\t\t\"password\": \"testpassword\",\r\n\t\t\"proxyId\": 0,\r\n\t\t\"proxyIp\": \"1.1.1.1\", //Required\r\n\t\t\"proxyName\": \"testproxyName111\",\r\n\t\t\"proxyPort\": 8807, //Required\r\n\t\t\"proxyProvider\": \"7\",//Required\r\n\t\t\"proxyType\": 0, //Required\r\n\t\t\"refreshUrl\": \"\",\r\n\t\t\"state\": \"fujian\",\r\n\t\t\"username\": \"test-un\"\r\n\t},\r\n\t\"uniqueIds\": [] //Choose one with environment ID, must fill one\r\n}"
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "boolean"
                    },
                    "requestId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "requestId"
                  ]
                },
                "example": {
                  "code": 0,
                  "msg": null,
                  "data": true,
                  "requestId": "d57cfecfc6904fcaa57da9f65b2a15fd"
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/setRemark/batch": {
      "post": {
        "summary": "Batch modify profile remark",
        "deprecated": false,
        "description": "",
        "tags": [
          "Profiles"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "envIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Environment IDs, must choose one between this and serial IDs"
                  },
                  "envRemark": {
                    "description": "Remark, required",
                    "type": "string"
                  },
                  "uniqueIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Serial IDs, must choose one between this and environment IDs"
                  }
                },
                "required": [
                  "envRemark"
                ]
              },
              "example": "{\r\n\t\"envIds\":  [\"2016036223642570752\",\"2016028408622419968\"], //Environment IDs, must choose one between this and serial IDs\r\n\t\"envRemark\": \"test\", //Remark, required\r\n\t\"uniqueIds\": [] //Serial IDs, must choose one between this and environment IDs\r\n}"
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "boolean"
                    },
                    "requestId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "requestId"
                  ]
                },
                "example": {
                  "code": 0,
                  "msg": null,
                  "data": true,
                  "requestId": "8172c8ff6ae048a9bb2546760832a460"
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/closeAll": {
      "post": {
        "summary": "Close all opened profiles",
        "deprecated": false,
        "description": "Closes all opened prifile windows. No request parameters required.",
        "tags": [
          "Runtime"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              },
              "example": {}
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "code": 0,
                  "msg": "Closed successfully"
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/getAllProcessIds": {
      "post": {
        "summary": "Get process IDs of all opened profiles",
        "deprecated": false,
        "description": "Gets the process IDs of all opened profiles. No request parameters required. Requires MoreLogin application version 2.49.0 or higher.",
        "tags": [
          "Runtime"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              },
              "example": {}
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "envId": {
                            "type": "string",
                            "description": "Environment ID"
                          },
                          "uniqueId": {
                            "type": "integer",
                            "description": "Sequence ID"
                          },
                          "envName": {
                            "type": "string",
                            "description": "Environment Name"
                          },
                          "pid": {
                            "type": "integer",
                            "description": "pid"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "code": 0,
                  "msg": null,
                  "data": [
                    {
                      "envId": "2014664375044337664",
                      "uniqueId": 1788,
                      "envName": "P-1788",
                      "pid": 22460
                    }
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/getAllDebugInfo": {
      "post": {
        "summary": "Get remote debugging info for all opened profiles",
        "deprecated": false,
        "description": "Gets remote debugging port and other information for all opened profiles. No request parameters required.",
        "tags": [
          "Runtime"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              },
              "example": {}
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "msg": {
                      "type": "null"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "envId": {
                            "type": "string",
                            "description": "Environment ID"
                          },
                          "uniqueId": {
                            "type": "integer",
                            "description": " Sequence ID"
                          },
                          "envName": {
                            "type": "string",
                            "description": "Environment Name"
                          },
                          "debugPort": {
                            "type": "string",
                            "description": "Debug Port"
                          },
                          "webdriver": {
                            "type": "string",
                            "description": "webdriver"
                          },
                          "pid": {
                            "type": "integer",
                            "description": "pid"
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "code": 0,
                  "msg": null,
                  "data": [
                    {
                      "envId": "2014664375044337664",
                      "uniqueId": 1788,
                      "envName": "P-1788",
                      "debugPort": "63536",
                      "webdriver": "C:\\Users\\EDY\\AppData\\Roaming\\MoreLogin\\env-kit\\Core\\chrome_64_142.9\\webdriver.exe",
                      "pid": 22460
                    }
                  ]
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/base/mobile/devices": {
      "post": {
        "summary": "Get phone model list",
        "deprecated": false,
        "description": "",
        "tags": [
          "Fingerprint & Device Config"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/browser%20phone%20list"
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/env/core/download": {
      "post": {
        "summary": "Download browser kernel",
        "deprecated": false,
        "description": "Download and install browser kernel(s). Supports batch downloading up to 20 kernels per request. The timeout for this operation can be up to approximately 30 minutes; callers should set their timeout to greater than 1805 seconds.\\n\\nRequires MoreLogin client version **2.61.1** or higher.\\n\\n### Duplicate Request Handling\\n\\n- If the same browser type and major version appears multiple times in a single request, only one lookup and download is performed, but each entry gets its own result.\\n- Concurrent requests for the same version will join the in-flight task instead of starting a new download.\\n- If the requested version is already installed with the latest minor version, the status will be `already_installed`.\\n- If an older minor version is installed, it will be updated to the latest available minor version.\\n\\n### Error Code Reference\\n\\n| errorCode | Description |\\n|---|---|\\n| `INVALID_JSON` | Malformed JSON body |\\n| `INVALID_REQUEST` | Invalid request structure |\\n| `BATCH_LIMIT_EXCEEDED` | `Cores` array exceeds 20 items |\\n| `UNSUPPORTED_BROWSER_TYPE` | Unsupported browser type |\\n| `INVALID_VERSION` | Invalid version format |\\n| `METADATA_LOOKUP_FAILED` | Failed to query kernel metadata |\\n| `UNSUPPORTED_VERSION` | Kernel version does not exist or is not supported on this platform |\\n| `CLIENT_NOT_READY` | Client not ready |\\n| `SDK_NOT_READY` | SDK not initialized |\\n| `INSUFFICIENT_DISK_SPACE` | Insufficient disk space |\\n| `DOWNLOAD_FAILED` | Download failed |\\n| `CHECKSUM_MISMATCH` | MD5 checksum verification failed |\\n| `EXTRACTION_FAILED` | Extraction or installation failed |\\n| `TIMEOUT` | Operation timed out |\\n| `UNKNOWN` | Unknown error |",
        "tags": [
          "Runtime"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "Cores": {
                    "type": "array",
                    "description": "List of kernels to download (1–20 items)",
                    "items": {
                      "type": "object",
                      "properties": {
                        "BrowserType": {
                          "type": "integer",
                          "description": "Browser type. `1`:Chrome, `2`:Firefox"
                        },
                        "Version": {
                          "type": "string",
                          "description": "Kernel major version number, e.g. `\"124\"`, `\"146\"`"
                        }
                      },
                      "required": [
                        "BrowserType",
                        "Version"
                      ]
                    }
                  }
                },
                "required": [
                  "Cores"
                ]
              },
              "example": {
                "Cores": [
                  {
                    "BrowserType": 1,
                    "Version": "124"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer",
                      "description": "Response code. `0`:all succeeded; `-1`:partial success; `-2`:all failed"
                    },
                    "msg": {
                      "type": "string",
                      "nullable": true,
                      "description": "Request-level error message; normally `null` on success"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "description": "Total number of requested tasks"
                        },
                        "succeeded": {
                          "type": "integer",
                          "description": "Number of succeeded tasks (including already installed)"
                        },
                        "failed": {
                          "type": "integer",
                          "description": "Number of failed tasks"
                        },
                        "results": {
                          "type": "array",
                          "description": "Execution result for each input item, in the same order as the request",
                          "items": {
                            "type": "object",
                            "properties": {
                              "index": {
                                "type": "integer",
                                "description": "Corresponding index in the `Cores` array (0-based)"
                              },
                              "browserType": {
                                "type": "integer",
                                "nullable": true,
                                "description": "Browser type"
                              },
                              "requestedVersion": {
                                "type": "string",
                                "nullable": true,
                                "description": "The requested major version"
                              },
                              "resolvedVersion": {
                                "type": "string",
                                "description": "The actual full version resolved; returned on success or when metadata is resolved"
                              },
                              "status": {
                                "type": "string",
                                "description": "Task status:`installed`, `already_installed`, or `failed`"
                              },
                              "source": {
                                "type": "string",
                                "description": "Download source:`downloaded`, `already_installed`, or `joined_in_flight`"
                              },
                              "errorCode": {
                                "type": "string",
                                "description": "Stable error classification code returned on failure"
                              },
                              "serverCode": {
                                "type": "integer",
                                "description": "Optional. Original business error code from the platform service"
                              },
                              "msg": {
                                "type": "string",
                                "description": "Display message; may vary by client language. Do not use for programmatic result checking"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "total",
                        "succeeded",
                        "failed",
                        "results"
                      ]
                    }
                  },
                  "required": [
                    "code",
                    "data"
                  ]
                },
                "example": {
                  "code": 0,
                  "msg": null,
                  "data": {
                    "total": 1,
                    "succeeded": 1,
                    "failed": 0,
                    "results": [
                      {
                        "index": 0,
                        "browserType": 1,
                        "requestedVersion": "124",
                        "resolvedVersion": "124.5",
                        "status": "installed",
                        "source": "downloaded",
                        "msg": "Download successful"
                      }
                    ]
                  }
                }
              }
            },
            "headers": {}
          }
        },
        "security": []
      }
    },
    "/api/cloudbrowser/start": {
      "post": {
        "summary": "Start cloud runtime",
        "description": "Start a browser profile as a cloud runtime. The browser runs on MoreLogin infrastructure, not on\nthis machine.\n\nStarting is asynchronous. A successful response only means the start request was accepted. Poll\n[Page cloud runtimes](#operation/pageCloudRuntimesLocal) until `cloudBrowserStatus` is `RUNNING`,\nthen call [Connect cloud runtime](#operation/connectCloudRuntimeLocal).\n\nA member can have only one active run per profile. Starting also validates profile permissions,\nfeature entitlement, proxy reachability, kernel availability, and AI credit balance.\n",
        "operationId": "startCloudRuntimeLocal",
        "tags": [
          "Cloud Runtime"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloudBrowserStartRequest"
              },
              "example": {
                "envId": "1800000000000001"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/VoidDataResponse"
          }
        },
        "security": []
      }
    },
    "/api/cloudbrowser/stop": {
      "post": {
        "summary": "Stop cloud runtime",
        "description": "Stop the active cloud runtime for a profile. A successful response only means the stop request was\naccepted; archiving and resource release may still be in progress.\n\n`force` is only honored when the current run has an archive status of `FAILED`.\n",
        "operationId": "stopCloudRuntimeLocal",
        "tags": [
          "Cloud Runtime"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloudBrowserStopRequest"
              },
              "example": {
                "envId": "1800000000000001",
                "force": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/VoidDataResponse"
          }
        },
        "security": []
      }
    },
    "/api/cloudbrowser/page": {
      "post": {
        "summary": "Page cloud runtimes",
        "description": "Query the browser profiles visible to the authenticated member together with the cloud runtime\nstatus for that member.\n\n`envId` also accepts the field alias `id`. `groupId` of `0` means ungrouped.\n",
        "operationId": "pageCloudRuntimesLocal",
        "tags": [
          "Cloud Runtime"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloudBrowserPageRequest"
              },
              "example": {
                "pageNo": 1,
                "pageSize": 10,
                "keyword": "marketing"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/CloudBrowserPageResponse"
          }
        },
        "security": []
      }
    },
    "/api/cloudbrowser/connect": {
      "post": {
        "summary": "Connect cloud runtime",
        "description": "Return the connection details for a running cloud runtime. Attach an automation framework such as\nPuppeteer, Playwright, or Selenium to the returned `cdpUrl`.\n\nThe runtime must be in the `RUNNING` state. Calling this again issues a new desktop token, which\ncan invalidate an earlier viewer session. Treat both returned URLs as short-lived credentials and\ndo not log or persist them.\n",
        "operationId": "connectCloudRuntimeLocal",
        "tags": [
          "Cloud Runtime"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloudBrowserConnectRequest"
              },
              "example": {
                "envId": "1800000000000001"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/CloudBrowserConnectResponse"
          }
        },
        "security": []
      }
    }
  },
  "components": {
    "schemas": {
      "start browser profile": {
        "type": "object",
        "properties": {
          "envId": {
            "type": "string",
            "description": "profile"
          },
          "debugPort": {
            "description": "Chrome DevTools Protocol (CDP) debugging port (e.g. 9222)",
            "type": "string"
          },
          "type": {
            "description": "Browser type (e.g., 'chrome', 'firefox')",
            "type": "string"
          },
          "version": {
            "description": "Browser version / kernel version (e.g., 129)",
            "type": "integer"
          },
          "webdriver": {
            "description": "Local file path of the matching WebDriver executable",
            "type": "string"
          }
        },
        "required": [
          "envId",
          "debugPort",
          "type",
          "version",
          "webdriver"
        ]
      },
      "UaGet": {
        "type": "object",
        "properties": {
          "resolution": {
            "description": "Resolution settings",
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "value"
            ]
          },
          "ua": {
            "description": "User Agent string",
            "type": "string"
          }
        },
        "required": [
          "resolution",
          "ua"
        ]
      },
      "CreateEnvironmentRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EnvironmentBase"
          },
          {
            "type": "object",
            "required": [
              "browserTypeId",
              "operatorSystemId"
            ],
            "properties": {
              "proxy": {
                "type": "object",
                "properties": {
                  "proxyId": {
                    "description": "Proxy ID",
                    "type": "integer"
                  },
                  "proxyName": {
                    "description": "Proxy name (maximum 600 characters)",
                    "type": "string"
                  },
                  "proxyType": {
                    "description": "Proxy type, 0: http, 1: https. Cannot be empty when proxyProvider is 7/8",
                    "type": "integer"
                  },
                  "proxyProvider": {
                    "description": "Proxy provider 0: http, 1: https, 2: socks5, 3: ssh, 4: Oxylabs, 5: Proxys.io, 7: Luminati, 8: Lumauto, 9: Oxylabsauto, 10: Trojan, 11: Shadowsocks, 13: ABCPROXY, 14: LunaProxy, 15: IPHTML, 16: PiaProxy, 17: 922S5, 18: 360Proxy",
                    "type": "string"
                  },
                  "proxyIp": {
                    "description": "Proxy IP. Can be empty when proxyProvider is 16/17/18; required for others",
                    "type": "string"
                  },
                  "proxyPort": {
                    "description": "Proxy port (only numbers 1-65535 allowed). Can be empty when proxyProvider is 16/17/18; required for others",
                    "type": "integer"
                  },
                  "username": {
                    "description": "Username (maximum 200 characters)",
                    "type": "string"
                  },
                  "password": {
                    "description": "Password (maximum 100 characters)",
                    "type": "string"
                  },
                  "refreshUrl": {
                    "description": "Refresh URL",
                    "type": "string"
                  },
                  "country": {
                    "description": "Country code (e.g. `us`). See [Country Time Zone Table](/api-reference/appendix/country-time-zone) for supported codes. Required when proxyProvider is 16/17/18",
                    "type": "string"
                  },
                  "city": {
                    "description": "City",
                    "type": "string"
                  },
                  "state": {
                    "description": "State/Province",
                    "type": "string"
                  },
                  "encryptionType": {
                    "description": "Encryption method. Cannot be empty when proxyProvider is 11. 1: aes-128-gcm, 2: aes-192-gcm, 3: aes-256-gcm, 4: aes-128-cfb, 5: aes-192-cfb, 6: aes-256-cfb, 7: aes-128-ctr, 8: aes-192-ctr, 9: aes-256-ctr, 10: rc4-md5, 11: chacha20-ietf, 12: xchacha20, 13: chacha20-ietf-poly1305, 14: xchacha20-ietf-poly1305",
                    "type": "integer"
                  },
                  "ipMonitor": {
                    "description": "Enable IP change monitoring? true: On, false: Off",
                    "type": "boolean"
                  },
                  "ipChangeAction": {
                    "description": "IP change monitoring 0: Block access, 1: Warn",
                    "type": "integer"
                  }
                },
                "description": "Proxy information"
              }
            }
          }
        ]
      },
      "UpdateEnvironmentRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EnvironmentBase"
          },
          {
            "type": "object",
            "required": [
              "envId"
            ],
            "properties": {
              "envId": {
                "type": "string",
                "description": "Environment ID"
              }
            }
          }
        ]
      },
      "EnvironmentBase": {
        "type": "object",
        "properties": {
          "browserTypeId": {
            "type": "integer",
            "description": "Browser type ID; 1=Chrome, 2=Firefox"
          },
          "operatorSystemId": {
            "type": "integer",
            "description": "OS type ID; 1:Windows 2:macOS 3:Android 4:IOS 5:Linux"
          },
          "isEncrypt": {
            "type": "integer",
            "description": "Whether to encrypt the profile; 0=No, 1=Yes"
          },
          "startupParams": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Additional browser startup parameters"
          },
          "accountInfo": {
            "description": "Account information",
            "$ref": "#/components/schemas/AccountInfo"
          },
          "advancedSetting": {
            "description": "Advanced browser fingerprint settings",
            "$ref": "#/components/schemas/AdvancedSetting"
          },
          "afterStartupConfig": {
            "description": "Configurations after startup",
            "$ref": "#/components/schemas/AfterStartupConfig"
          },
          "browserCore": {
            "type": "integer",
            "description": "Kernel version; default:0 (auto-match). Fetch available versions via `/api/env/advanced/ua/versions`."
          },
          "cookies": {
            "type": "string",
            "description": "Cookie string to preload (optional)"
          },
          "envName": {
            "type": "string",
            "description": "Environment name"
          },
          "envRemark": {
            "type": "string",
            "description": "Environment remark; max length:1500 chars"
          },
          "groupId": {
            "type": "integer",
            "description": "Environment group ID; default:ungrouped (0)"
          },
          "groupName": {
            "type": "string",
            "maxLength": 50,
            "description": "Group name (max 50 characters). If provided, the system first checks groupId: if a valid group is found, it is used; otherwise, it searches by groupName. If a group with that name exists, it is referenced; if not, a new group is created. Each team is limited to 1,000 groups."
          },
          "proxyId": {
            "type": "integer",
            "description": "Proxy ID; default:0"
          },
          "tagIds": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Tag IDs; default:none"
          },
          "uaVersion": {
            "type": "integer",
            "description": "UA preset version; default:0 (all)"
          },
          "disableAudio": {
            "type": "integer",
            "description": "Disable audio:0 = off, 1 = on"
          },
          "disableImg": {
            "type": "integer",
            "description": "Disable image loading:0 = off, 1 = on"
          },
          "disableVideo": {
            "type": "integer",
            "description": "Disable video loading:0 = off, 1 = on"
          },
          "imgLimitSize": {
            "type": "integer",
            "description": "Max image size (KB)"
          }
        }
      },
      "AccountInfo": {
        "type": "object",
        "properties": {
          "customerUrl": {
            "type": "string",
            "description": "Custom platform URL — required if platformId=9999, must be a valid URL"
          },
          "password": {
            "type": "string",
            "description": "Password; max length:50 characters"
          },
          "platformId": {
            "type": "integer",
            "description": "Platform ID; use 9999 for custom URL. Refer to /api/system/platform/list."
          },
          "siteId": {
            "type": "integer",
            "description": "Site ID; obtain via \"\"Get Configurable Platforms\"\" API (/api/system/platform/list)"
          },
          "username": {
            "type": "string",
            "maxLength": 64,
            "description": "Username; max length:64 characters"
          }
        }
      },
      "AdvancedSetting": {
        "type": "object",
        "description": "Advanced browser fingerprint and behavior configuration.",
        "properties": {
          "ua": {
            "type": "string",
            "description": "Customize the profile User-Agent (UA). Must follow standard UA format.\nAvailable via the “Get Browser UA” API.\n"
          },
          "time_zone": {
            "description": "Timezone settings",
            "$ref": "#/components/schemas/TimeZoneConfig"
          },
          "web_rtc": {
            "description": "WebRTC settings",
            "$ref": "#/components/schemas/WebRTCConfig"
          },
          "geo_location": {
            "description": "Geolocation settings",
            "$ref": "#/components/schemas/GeoLocationConfig"
          },
          "language": {
            "description": "Language",
            "$ref": "#/components/schemas/LanguageConfig"
          },
          "resolution": {
            "description": "Resolution settings",
            "$ref": "#/components/schemas/ResolutionConfig"
          },
          "font": {
            "description": "Font settings",
            "$ref": "#/components/schemas/FontConfig"
          },
          "canvas": {
            "description": "Canvas fingerprinting setting",
            "$ref": "#/components/schemas/CanvasConfig"
          },
          "webgl_image": {
            "description": "WebGL image settings",
            "$ref": "#/components/schemas/WebGLImageConfig"
          },
          "webgl_metadata": {
            "description": "WebGL metadata settings",
            "$ref": "#/components/schemas/WebGLMetadataConfig"
          },
          "audio_context": {
            "description": "AudioContext: 1 = noise, 2 = authentic",
            "$ref": "#/components/schemas/AudioContextConfig"
          },
          "media_device": {
            "description": "Media device: 1 = noise, 2 = authentic",
            "$ref": "#/components/schemas/MediaDeviceConfig"
          },
          "client_rects": {
            "description": "ClientRects: 1 = noise, 2 = authentic",
            "$ref": "#/components/schemas/ClientRectsConfig"
          },
          "speech_voise": {
            "description": "Speech voice: 1 = privacy, 2 = authentic",
            "$ref": "#/components/schemas/SpeechVoiseConfig"
          },
          "hardware_concurrency": {
            "type": "integer",
            "description": "Simulated number of logical CPU cores.\nDefault:4. Options: 0 (real), 2, 3, 4, 6, 8, 10, 12.\n"
          },
          "memery_device": {
            "type": "integer",
            "description": "Simulated device memory (GB).\nDefault:8. Options: 0 (real), 2, 4, 6, 8.\n"
          },
          "do_not_track": {
            "type": "integer",
            "description": "Do Not Track setting. Default:2. 1 = on, 2 = off."
          },
          "bluetooth": {
            "description": "Bluetooth: 1 = privacy, 2 = authentic",
            "$ref": "#/components/schemas/BluetoothConfig"
          },
          "battery": {
            "description": "Battery: 1 = privacy, 2 = authentic",
            "$ref": "#/components/schemas/BatteryConfig"
          },
          "port_scan_protection": {
            "description": "Port scan protection",
            "$ref": "#/components/schemas/PortScanProtectionConfig"
          },
          "os_version": {
            "type": "string",
            "description": "macOS system version (e.g., macOS 12, macOS 13, macOS 14)."
          },
          "web_gpu": {
            "description": "WebGPU settings",
            "$ref": "#/components/schemas/WebGPUConfig"
          },
          "ciphers": {
            "description": "Cipher suite configurations",
            "$ref": "#/components/schemas/CiphersConfig"
          },
          "mobile_device": {
            "type": "string",
            "description": "Phone model ID (as string). Obtain via \"Get Phone Model List\" API.\nExample: \"1826502391344832512\"\n"
          }
        }
      },
      "TimeZoneConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "Timezone option. Default:1. 1 = Match IP, 2 = Custom."
          },
          "value": {
            "type": "string",
            "description": "Required when switcher=2.\nTimezone ID from “Get Timezone & Language List” API.\n"
          }
        }
      },
      "WebRTCConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "WebRTC policy. Default:2. 1 = Privacy, 2 = Replacement, 3 = Real, 4 = Disabled, 5 = Forwarding.\n"
          }
        }
      },
      "GeoLocationConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "Geolocation policy. Default:1. 1 = Prompt, 2 = Disabled."
          },
          "base_on_ip": {
            "type": "boolean",
            "description": "Generate location based on IP? Default:true. true = prompt, false = manual."
          },
          "latitude": {
            "type": "number",
            "format": "float",
            "description": "Latitude. Required if base_on_ip=false."
          },
          "longitude": {
            "type": "number",
            "format": "float",
            "description": "Longitude. Required if base_on_ip=false."
          },
          "accuracy": {
            "type": "number",
            "format": "float",
            "description": "Accuracy in meters. Required if base_on_ip=false."
          }
        }
      },
      "LanguageConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "Language policy. Default:1. 1 = Match IP, 2 = Custom."
          },
          "value": {
            "type": "string",
            "description": "Required when switcher=2.\nComma-separated language IDs from “Get Timezone & Language List” API.\n"
          }
        }
      },
      "ResolutionConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "Resolution policy. Default:1. 1 = Real, 2 = Custom."
          },
          "id": {
            "type": "string",
            "description": "Required when switcher=2.\nResolution ID from “Get Resolution List” API.\n"
          }
        }
      },
      "FontConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "Font policy. Default:1. 1 = Real, 2 = Custom."
          },
          "value": {
            "type": "string",
            "description": "Comma-separated custom font names (required if switcher=2)."
          }
        }
      },
      "CanvasConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "Canvas policy. Default:1. 1 = Noise, 2 = Real."
          }
        }
      },
      "WebGLImageConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "WebGL image policy. Default:1. 1 = Noise, 2 = Real."
          }
        }
      },
      "WebGLMetadataConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "WebGL metadata policy. Default:3. 1 = Real, 2 = Disable HW acceleration, 3 = Custom."
          },
          "provider": {
            "type": "string",
            "description": "WebGL vendor string (e.g., \"Google Inc.\")"
          },
          "render": {
            "type": "string",
            "description": "WebGL renderer string (e.g., \"ANGLE (...)\")"
          }
        }
      },
      "AudioContextConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "AudioContext policy. Default:1. 1 = Noise, 2 = Realistic."
          }
        }
      },
      "MediaDeviceConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "Media device policy. Default:1. 1 = Noise, 2 = Real."
          }
        }
      },
      "ClientRectsConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "ClientRects policy. Default:1. 1 = Noise, 2 = Real."
          }
        }
      },
      "SpeechVoiseConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "SpeechVoices policy. Default:1. 1 = Privacy, 2 = Real"
          }
        }
      },
      "BluetoothConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "Bluetooth policy. Default:1. 1 = Privacy, 2 = Authenticity."
          }
        }
      },
      "BatteryConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "Battery policy. Default:1. 1 = Privacy, 2 = Authenticity."
          }
        }
      },
      "PortScanProtectionConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "Port scan protection. Default:1. 1 = On, 2 = Off."
          },
          "value": {
            "type": "string",
            "description": "Allowed local network ports to connect (comma-separated)."
          }
        }
      },
      "WebGPUConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "WebGPU policy. Default:1. 1 = WebGL-based matching, 2 = true, 3 = disabled."
          }
        }
      },
      "AfterStartupConfig": {
        "type": "object",
        "properties": {
          "afterStartup": {
            "type": "integer",
            "format": "int32",
            "description": "Action after startup. Default:1.\n1 = Continue last page,\n2 = Open specified URLs,\n3 = Open URLs + platform,\n4 = Continue last page + platform.\n"
          },
          "autoOpenUrls": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            },
            "description": "List of valid URLs to open automatically (required for options 2–3)."
          }
        }
      },
      "CiphersConfig": {
        "type": "object",
        "properties": {
          "switcher": {
            "type": "integer",
            "description": "TLS cipher policy. Default:1. 1 = Default, 2 = Custom."
          },
          "value": {
            "type": "string",
            "description": "Required when switcher=2.\nComma-separated list of TLS protocols to disable (e.g., \"TLSv1,TLSv1.1\").\n"
          }
        }
      },
      "platformList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Platform ID"
          },
          "categoryId": {
            "type": "string",
            "description": "Category ID"
          },
          "groupName": {
            "type": "string",
            "description": "Group name"
          },
          "groups": {
            "type": "string",
            "description": "Group，0：Amazon"
          },
          "isCustomer": {
            "type": "boolean",
            "description": "Whether to customize the platform"
          },
          "logo": {
            "type": "string",
            "description": "Platform logo"
          },
          "name": {
            "type": "string",
            "description": "Platform name"
          },
          "orderNo": {
            "type": "string",
            "description": "Sort Number"
          },
          "sites": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Site ID"
                },
                "host": {
                  "type": "string",
                  "description": "Site Domain Name"
                },
                "name": {
                  "type": "string",
                  "description": "Size name"
                },
                "nameBak": {
                  "type": "string",
                  "description": "Size name backup"
                },
                "logo": {
                  "type": "string",
                  "description": "Logo"
                },
                "url": {
                  "type": "string",
                  "description": "Size URL"
                },
                "isDefault": {
                  "type": "boolean"
                },
                "country": {
                  "type": "string",
                  "description": "Country"
                }
              },
              "required": [
                "id",
                "host",
                "name",
                "logo",
                "nameBak",
                "url",
                "isDefault",
                "country"
              ]
            },
            "description": "Sites information"
          }
        },
        "required": [
          "categoryId",
          "groupName",
          "groups",
          "id",
          "isCustomer",
          "logo",
          "name",
          "orderNo",
          "sites"
        ]
      },
      "browser phone list": {
        "type": "object",
        "properties": {
          "code": {
            "description": "Return result code 0:Normal Other codes are exceptions.",
            "type": "integer"
          },
          "msg": {
            "description": "Error message",
            "type": "string"
          },
          "data": {
            "description": "Response data",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "resolution": {
                  "type": "string"
                },
                "os": {
                  "type": "integer"
                },
                "platform": {
                  "type": "string"
                }
              }
            }
          },
          "requestId": {
            "description": "Operation request ID",
            "type": "string"
          }
        },
        "required": [
          "code",
          "msg",
          "data",
          "requestId"
        ]
      },
      "EnvironmentId": {
        "type": "string",
        "pattern": "^[1-9]\\d*$",
        "description": "Browser profile (environment) ID. Serialized as a decimal string to avoid JavaScript\nprecision loss on 64-bit integers.\n",
        "example": "1800000000000001"
      },
      "CloudBrowserStartRequest": {
        "type": "object",
        "properties": {
          "envId": {
            "$ref": "#/components/schemas/EnvironmentId"
          }
        },
        "required": [
          "envId"
        ]
      },
      "ApiResponseBase": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "Return result code. `0` means success; other codes indicate exceptions.",
            "example": 0
          },
          "msg": {
            "type": [
              "string",
              "null"
            ],
            "description": "Error message. Usually `null` on success.",
            "example": null
          },
          "requestId": {
            "type": "string",
            "description": "Operation request ID. This field may be present when the request passes through the API gateway.",
            "example": "1d4f3ea968664593860b94b35d4ebf5e"
          }
        },
        "required": [
          "code",
          "msg"
        ]
      },
      "CloudBrowserStopRequest": {
        "type": "object",
        "properties": {
          "envId": {
            "$ref": "#/components/schemas/EnvironmentId"
          },
          "force": {
            "type": "boolean",
            "description": "Whether to forcibly release the cloud runtime. Only takes effect when the current run has\nan archive status of `FAILED`; in that case the archive step is skipped and runtime\nresources are reclaimed. Ignored in all other cases.\n",
            "default": false,
            "example": false
          }
        },
        "required": [
          "envId"
        ]
      },
      "CloudBrowserPageRequest": {
        "type": "object",
        "properties": {
          "uniqueIds": {
            "type": "array",
            "description": "Environment sequence numbers. Up to 100 items.",
            "maxItems": 100,
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "example": [
              1001,
              1002
            ]
          },
          "envId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EnvironmentId"
              }
            ],
            "description": "Environment ID. The request also accepts the field alias `id`."
          },
          "envName": {
            "type": "string",
            "description": "Environment name.",
            "example": "marketing-01"
          },
          "keyword": {
            "type": "string",
            "description": "Keyword filter. Matches environment name, group name, tag name, and remark.",
            "example": "marketing"
          },
          "groupId": {
            "type": "string",
            "pattern": "^\\d+$",
            "description": "Group ID. `0` means ungrouped.",
            "example": "0"
          },
          "pageNo": {
            "type": "integer",
            "format": "int64",
            "description": "Current page number, starting from 1. Default is 1.",
            "minimum": 1,
            "default": 1,
            "example": 1
          },
          "pageSize": {
            "type": "integer",
            "format": "int64",
            "description": "Number of items per page. Default is 10, maximum 100.",
            "minimum": 1,
            "maximum": 100,
            "default": 10,
            "example": 10
          }
        },
        "required": [
          "pageNo",
          "pageSize"
        ]
      },
      "CloudBrowserStatus": {
        "type": "string",
        "description": "Cloud runtime status:\n- `STARTING` — starting up\n- `RUNNING` — running and ready to connect\n- `CLOSED` — not started, closed, or failed to start\n",
        "enum": [
          "STARTING",
          "RUNNING",
          "CLOSED"
        ],
        "example": "RUNNING"
      },
      "CloudBrowserArchiveStatus": {
        "type": [
          "string",
          "null"
        ],
        "description": "Archive status of the current cloud run. `null` when there is no active run record:\n- `PENDING` — pending archive\n- `ARCHIVING` — archiving\n- `COMPLETED` — archive completed\n- `FAILED` — archive failed\n",
        "enum": [
          "PENDING",
          "ARCHIVING",
          "COMPLETED",
          "FAILED",
          null
        ],
        "example": null
      },
      "CloudBrowserPageItem": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/EnvironmentId"
          },
          "envName": {
            "type": "string",
            "description": "Environment name.",
            "example": "marketing-01"
          },
          "proxyId": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^\\d+$",
            "description": "Proxy ID currently bound to the profile. `null` when no proxy is configured.",
            "example": "1800000000000101"
          },
          "cloudBrowserStatus": {
            "$ref": "#/components/schemas/CloudBrowserStatus"
          },
          "cloudBrowserArchiveStatus": {
            "$ref": "#/components/schemas/CloudBrowserArchiveStatus"
          },
          "startDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Cloud runtime start time. `null` while starting, or when not started or closed.",
            "example": "2026-01-15T10:30:00.000+00:00"
          }
        },
        "required": [
          "id",
          "envName",
          "cloudBrowserStatus"
        ]
      },
      "CloudBrowserPageData": {
        "type": "object",
        "properties": {
          "total": {
            "type": "string",
            "pattern": "^\\d+$",
            "description": "Total number of records.",
            "example": "42"
          },
          "current": {
            "type": "string",
            "pattern": "^\\d+$",
            "description": "Current page number.",
            "example": "1"
          },
          "pages": {
            "type": "string",
            "pattern": "^\\d+$",
            "description": "Total number of pages.",
            "example": "5"
          },
          "dataList": {
            "type": "array",
            "description": "Environments on the current page. Empty array when there are no results.",
            "items": {
              "$ref": "#/components/schemas/CloudBrowserPageItem"
            }
          }
        },
        "required": [
          "total",
          "current",
          "pages",
          "dataList"
        ]
      },
      "CloudBrowserConnectRequest": {
        "type": "object",
        "properties": {
          "envId": {
            "$ref": "#/components/schemas/EnvironmentId"
          }
        },
        "required": [
          "envId"
        ]
      },
      "CloudBrowserConnectResult": {
        "type": "object",
        "properties": {
          "cdpUrl": {
            "type": "string",
            "description": "Full CDP (Chrome DevTools Protocol) address including the access `token` parameter. Pass this\nURL to an automation framework such as Puppeteer, Playwright, or Selenium to attach to the\nremote browser.\n",
            "example": "https://runtime1.morelogin.com:16167?token=c62fedaaac524e41a0f02fc4345d41cb"
          },
          "accessUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Cloud browser page wrapper address. Open it in a browser to view and control the cloud\nbrowser desktop. `null` when the page wrapper is not configured.\n\nThe `token` parameter is a Base64-encoded payload carrying the desktop URL, desktop token,\nexpiry, and team, user, member, and environment IDs. The `envName` and `lang` parameters set\nthe displayed environment name and interface language.\n",
            "example": "https://official-website.morelogin.com/browser-remote?token=eyJkZXNrdG9wVXJsIjoi...ZW52SWQiOiIyMDczMzk1NDg5NzM4OTE5OTM2In0%3D&envName=P-1267&lang=en-US"
          }
        },
        "required": [
          "cdpUrl"
        ]
      }
    },
    "responses": {
      "VoidDataResponse": {
        "description": "Success",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/ApiResponseBase"
                },
                {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "null",
                      "example": null
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "CloudBrowserPageResponse": {
        "description": "Success",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/ApiResponseBase"
                },
                {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/CloudBrowserPageData"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              ]
            }
          }
        }
      },
      "CloudBrowserConnectResponse": {
        "description": "Success",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/ApiResponseBase"
                },
                {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/CloudBrowserConnectResult"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              ]
            },
            "example": {
              "code": 0,
              "msg": null,
              "data": {
                "cdpUrl": "https://runtime1.morelogin.com:16167?token=c62fedaaac524e41a0f02fc4345d41cb",
                "accessUrl": "https://official-website.morelogin.com/browser-remote?token=eyJkZXNrdG9wVXJsIjoi...ZW52SWQiOiIyMDczMzk1NDg5NzM4OTE5OTM2In0%3D&envName=P-1267&lang=en-US"
              },
              "requestId": "1d4f3ea968664593860b94b35d4ebf5e"
            }
          }
        }
      }
    }
  }
}